<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /*
    解法：
    先对原数组升序排序，然后进行双指针嵌套遍历，外层遍历找顺子起点，内层遍历找顺子后续元素，
    被找到的元素置为-1即寻找其他顺子元素时直接略过，若无法找到完整顺子则返回false
    代码逻辑说明：

    外层遍历：从下标i=0开始遍历数组内的元素，如果当前元素不为负数则作为顺子起点
    内层遍历：从下标j=i+1(即顺子起点的下一个元素)开始遍历数组内的元素，寻找顺子后续元素
    对已找到的元素计数，计数变量记为count
    若当前元素与顺子起点的差值等于count+1，则说明该元素是顺子的后续元素
    内层遍历结束，若找到的元素数量不等于groupSize - 1，说明顺子不存在应返回false
    */
    var kearPI = function (hand, groupSize) {
      hand.sort((a, b) => a - b)
      for (var i = 0; i < hand.length; i++) {
        if (hand[i] < 0) continue;
        let conut = 0;
        for (var j = i + 1; j < hand.length && conut !== groupSize - 1; j++) {
          if (hand[j] - hand[i] === conut + 1) conut++, hand[j] = -1
        }
        if (conut !== groupSize - 1) return false
      }
      return true
    }
    console.log(kearPI(hand = [1, 2, 3, 6, 2, 3, 4, 7, 8, 1, 5, 4, 1,], groupSize = 3))
  </script>
</body>

</html>